Automatic program synthesis via synthesis

نویسنده

  • JOE W. DURAN
چکیده

Work on theorem-proving-based automatic program synthesis (see Lee, e t ai.,1 for example) has been neglected iately. In their 1971 paper, Manna and Waldinger8 covered one of the main reasons why-the difficulty of synthesizing program loops within the current state of the art of automatic theorem-proving.· However, there is a great deal of continuing work in theorem-proving, and it is important that motivating work in related areas such as program synthesis not be neglected. Most theorem-proving-based synthesis systems attempt to constructively prove theorems of the form, "for all input values satisfying the desired input predicate I, there exists a corresponding set of values of output variables which satisfy the desired result predicate, R." The resulting program (if any) is correct with respect to the input and output predicates. In general, inductive proofs are needed to synthesize the loops within a program. This causes difficulty, and in fact previous work has not been notably successful with loops. To quote Manna and Waldinger, " ... these systems have been fairly limited; for example, either they have been completely unable to produce programs with loops or they have introduced loops by underhanded methods." Since most interesting programs contain loops in some form, this is a crucial problem for successful synthesis. We will limit our discussion to iterative loops. Manna and Waldinger outlined an approach to automatic synthesis which attacked the problem of iterative loops, and discussed the use of various forms of induction for reducing synthesis to the proving of loop-free (i.e., induction-free) lemmas. However, they were dissatisfied with the large number of equivalent induction principles required by their approach. In fact, only a single rule is needed. Loop invariants can be used to provide a single, general rule for expressing the synthesis of loops in terms of loop-free lemmas. We consider only input and output predicate pairs, I and R, which make sense in the context of program synthesis; i.e., they must be decidable and "define" a nontrivial recursive function, in the sense that 3F{I(v )~R(v,F(v»} is true. If a recursive function is "defined" by an I,R pair,

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A General Theory of Automatic Program Synthesis

Some results concerning inductive inference are surveyed. These results are interpreted with respect to automatic program synthesis, a special case of algorithmic inductive iruerence. The interpretations reinforce and refine opinions concerning automatic program synthesis, and artificial intelligence in general, which have been previously expressed in [9] and [15]. The final section digresses f...

متن کامل

Satisfiability-based Program Reasoning and Program Synthesis

Title of dissertation: SATISFIABILITY-BASED PROGRAM REASONING AND PROGRAM SYNTHESIS Saurabh Srivastava, Doctor of Philosophy, 2010 Dissertation directed by: Professor Jeffrey S. Foster Department of Computer Science Program reasoning consists of the tasks of automatically and statically verifying correctness and inferring properties of programs. Program synthesis is the task of automatically ge...

متن کامل

Program Synthesis and Transformations in an Object-oriented Environment Program Synthesis and Transformations in an Object-oriented Environment

An object-oriented language with automatic synthesis of methods (programs) and transformations of OO descriptions using a logical metalanguage (Horn-clause logic) are considered. Automatic synthesis of methods (Proof-As-Program approach) is based on in-tuitionistic propositional calculus. The metalanguage expresses general knowledge related to classes and objects and it is used for describing t...

متن کامل

1 . Constraints in NUT

NUT is a programming system for knowledge-based programming with facilities for automatic program synthesis. The system allows to specify computational problems in OO style. Concepts and objects can be treated in NUT as functional constraint networks. Constraint satisfaction problems are solved using algorithms for automatic program synthesis described earlier for the PRIZ system.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010